Amazon QuickSightからパブリックアクセスを許可しないRedshift Serverlessへプライベート接続する
データアナリティクス事業本部インテグレーション部コンサルティングチーム、新納(にいの)です。
ゴールデンウィークも明けた今日この頃、皆様におかれましてはAmazon QuickSightからパブリックアクセスを許可していないRedshift Serverlessにプライベート接続したくなってくる頃合いかと存じます。というわけでやっていきましょう。
構成
今回の構成は以下の通り。
必要な設定
Amzon QuickSight用ENIセキュリティグループ
QuickSightが対象となるVPCのサブネット上にElastic Network Interface(以下、ENI)を自動生成します。このENIにアタッチするセキュリティグループでRedshift Serverlessへの通信を許可します。
Redshift Serverlessのセキュリティグループにルール追加
QuickSightからのインバウンドアクセスを許可するルールを追加します。
Amazon QuickSightでのVPC接続設定
QuickSightからインターネットを経由せずデータソースと接続するには、VPC接続を利用します。先日のアップデートにより、最低2つ以上のAvailability Zone(以下、AZ)の指定が必須となりました。
設定する
Amzon QuickSight用ENIセキュリティグループ作成
インバウンドルール
ソースにRedshift Serverlessにアタッチされたセキュリティグループを指定し、すべてのトラフィックを許可します。
アウトバウンドルール
ソースにRedshift Serverlessにアタッチされたセキュリティグループを指定し、Redshift Serverlessのポートをへのアウトバウンドアクセスを許可します。
Redshift Serverlessのセキュリティグループにルール追加
上記で作成したQuickSight用のENIのセキュリティーグループをソースに指定し、Redshift Serverlessのポートへのアクセスを許可します。
実行ロールの作成
QuickSightからVPC接続を設定する際にIAMロールの指定が必要となります。以下ドキュメントに従って設定していきましょう。
Configuring the VPC connection in the QuickSight console - Amazon QuickSight
信頼されたエンティティではカスタム信頼ポリシーを選択し、以下の通りQuickSightを信頼するよう記述します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
カスタムポリシーとして以下を指定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
Amazon QuickSightでVPC接続設定
QuickSightの管理画面からVPC接続の管理へ遷移し、「VPC接続の追加」から設定を開始します。
設定画面は以下の通り指定します。
値 | 項目 |
---|---|
VPC接続名 | 任意(データセットの作成時に表示される名前) |
VPC ID | Redshift Serverlessが配置されているVPC |
実行ロール | 上記で作成したIAMロール |
サブネットID | Redshift Serverlessが配置されているサブネット |
セキュリティグループID | QuickSight用ENIのセキュリティグループ |
追加するとQuickSightのコンソール画面上から確認可能です。VPC接続追加後、ENIを作成します。このステータスがAVAILABLEになるとデータセット作成時にVPC接続を選べるようになります。
データセットを作成する
ここまででVPC接続の準備は整いました。さっそくQuickSightのコンソール画面からデータセットを作成し、Redshift ServerlessへVPC接続してみましょう。
データセット作成画面からRedshift(手動接続)を選択します。
設定画面で以下の通り値を入力します。
項目 | 値 |
---|---|
データソース名 | 任意の名前 |
接続タイプ | 作成したVPC接続名 |
データベースサーバー | Redshift Serverlessのエンドポイント名<名前空間>.<AWSアカウントID>.<リージョン>.redshift-serverless.amazonaws.com の形 |
ポート | 5439 |
データベース名 | Redshift Serverlessのデータベース名 |
ユーザー名 | Redshift Serverlessのユーザー名 |
パスワード | Redshift Serverlessのパスワード |
もし接続タイプに「パブリックアクセス」のみ表示されている場合、QuickSight用ENIの作成が完了していない可能性があります。VPC接続の画面からステータスを確認し、AVAILABLEになるまで待ってから再度試してみてください。
最後に
QuickSightからRedshift ServerlessにVPC接続する方法のご紹介でした。非VPCリソースであるQuickSightですが、プライベート接続を比較的簡単に設定できるのはAWSのフルマネージドサービスならではですね。このブログがどなたかのお役に立てれば幸いです。